<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>类的基本知识</title>
</head>
<body>
    <script type="text/javascript">
        /**
         * 1.类中的构造器不是必须写的，要添加属性的时候 才需要填写 
         * 2.如果A类继承了B类，且A类中写了构造器需要接受传值 则必须 用super()接受一下B类中的值
         * **/
        class Person {
            constructor(name,age){
                this.name = name
                this.age = age
            }
            a = 1           //类中可以直接写赋值语句 该代码含义 :给Car的实例对象添加一个属性,名为a 值为1
            static demo = 100   //给类本身加属性 而不是 加给类的实例对象
            speak(){
                console.log(`my name is ${this.name},I am ${this.age} years old`);
            }
        }
        class Student extends Person{
            constructor(name,age,grade){
                super(name,age)
                this.grade = grade
            }
        }
        const p1 = new Person('Tom',19)
        const p2 = new Person('Jerry',20)
        const s1 = new Student('Lion',15,'高一')
        console.log('实例对象',s1);
        p1.speak()
        p2.speak()
    </script>
</body>
</html>